package com.cictec.middleware.tde.rm.protocol.rm.message;

import java.util.Arrays;
import java.util.Date;

import com.cictec.middleware.tde.rm.protocol.TerminalMessage;

/**
 * 0x41 上传透明通道数据
 * 
 * @author Zhibin
 *
 */
public class Rm0x41TerminalMessage extends TerminalMessage {

	private static final long serialVersionUID = -4607382473045747184L;
	
	/** 产生时间 HEX 4 字节 数据内容产生时间 */
	private Date createTime;
	/** 设备类型 HEX 1 字节 见设备类型表 */
	private int deviceType;
	/** 数据内容长度 HEX 1 字节 表示数据内容的长度 */
	private int dataSize;
	/** 数据内容 ASCII 不定长 */
	private byte[] data;
	/** 预留 HEX 2 字节 如果设备类型为 0x08，则第一 字节表示透传数据总包数， 第二 字节表示当前包序。如：0x0503 表示数据共 5包，当前第 3 包 */
	private int reserved;

	public Rm0x41TerminalMessage(Header header) {
		super(header);
	}

	/** 产生时间 HEX 4 字节 数据内容产生时间 */
	public Date getCreateTime() {
		return createTime;
	}

	/** 产生时间 HEX 4 字节 数据内容产生时间 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/** 设备类型 HEX 1 字节 见设备类型表 */
	public int getDeviceType() {
		return deviceType;
	}

	/** 设备类型 HEX 1 字节 见设备类型表 */
	public void setDeviceType(int deviceType) {
		this.deviceType = deviceType;
	}

	/** 数据内容长度 HEX 1 字节 表示数据内容的长度 */
	public int getDataSize() {
		return dataSize;
	}

	/** 数据内容长度 HEX 1 字节 表示数据内容的长度 */
	public void setDataSize(int dataSize) {
		this.dataSize = dataSize;
	}

	/** 数据内容 ASCII 不定长 */
	public byte[] getData() {
		return data;
	}

	/** 数据内容 ASCII 不定长 */
	public void setData(byte[] data) {
		this.data = data;
	}

	/** 预留 HEX 2 字节 如果设备类型为 0x08，则第一 字节表示透传数据总包数， 第二 字节表示当前包序。如：0x0503 表示数据共 5包，当前第 3 包 */
	public int getReserved() {
		return reserved;
	}

	/** 预留 HEX 2 字节 如果设备类型为 0x08，则第一 字节表示透传数据总包数， 第二 字节表示当前包序。如：0x0503 表示数据共 5包，当前第 3 包 */
	public void setReserved(int reserved) {
		this.reserved = reserved;
	}

	@Override
	public String toString() {
		return "Rm0x41TerminalMessage [createTime=" + createTime + ", deviceType=" + deviceType + ", dataSize="
				+ dataSize + ", data=" + Arrays.toString(data) + ", reserved=" + reserved + "]";
	}

	
}
